package com.firefly.admin.config.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.firefly.admin.common.vo.Result;
import com.firefly.admin.monitor.vo.SelectResult;
import com.firefly.admin.config.entity.FySystemSensitiveConfig;
import com.firefly.admin.config.vo.SystemSensitiveConfigQueryVo;
import com.firefly.admin.config.vo.SystemSensitiveConfigStatusUpdateVo;

import java.util.List;
import java.util.Map;

public interface FySystemSensitiveConfigService {
    /**
     * 通过敏感类型获取敏感配置
     *
     * @param type 敏感类型
     * @return 敏感配置列表
     */
    List<FySystemSensitiveConfig> selectListByType(String type);

    /**
     * 分页查询系统敏感数据配置接口
     *
     * @param systemSensitiveConfigQueryVo 系统敏感配置查询条件
     * @return 敏感配置列表
     */
    Result<Page<FySystemSensitiveConfig>> getSystemSensitiveConfigList(SystemSensitiveConfigQueryVo systemSensitiveConfigQueryVo);

    /**
     * 系统敏感数据配置新增接口
     *
     * @param fySystemSensitiveConfig 系统敏感数据配置
     * @return 新增结果
     */
    Result<FySystemSensitiveConfig> add(FySystemSensitiveConfig fySystemSensitiveConfig);

    /**
     * 系统敏感数据配置编辑接口
     *
     * @param fySystemSensitiveConfig 系统敏感数据配置
     * @return 编辑结果
     */
    Result<FySystemSensitiveConfig> update(FySystemSensitiveConfig fySystemSensitiveConfig);

    /**
     * 系统敏感数据配置状态修改接口
     *
     * @param systemSensitiveConfigStatusUpdateVo 系统敏感数据配置状态编辑参数
     * @return 操作结果
     */
    Result<FySystemSensitiveConfig> updateStatus(SystemSensitiveConfigStatusUpdateVo systemSensitiveConfigStatusUpdateVo);

    /**
     * 系统敏感数据配置删除接口
     *
     * @param configId 配置ID
     * @return 删除结果
     */
    Result<String> delete(Long configId);

    /**
     * 敏感类型枚举列表查询接口
     *
     * @return 敏感类型列表
     */
    Result<Map<String, List<SelectResult>>> getSensitiveTypeEnumList();
}
